﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Modulos_ModuloPrestamo_VistaControl_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        LabelUsuario.Text = VariablesGlobales.GetInstance().getUsuario();
    }
    protected void LinkButtonAgregarMat_Click(object sender, EventArgs e)
    {
        //verificar k el material no existe
        bool existen_iguales = false;
        foreach (ListItem item in ListBoxMateriales.Items)
        {
            //item
            if(string.Compare(item.Value,DropDownListMaterial.SelectedValue)==0)
            {
                existen_iguales = true;
            }
        }
        if(existen_iguales == false)
        {
            if(int.Parse(TextBoxCantidad.Text.Trim()) > 0)
            {//si la cantidad de articulos no es cero!!!
                ListItem a = new ListItem();
                a.Text = DropDownListMaterial.SelectedItem.ToString() + ", cantidad = " + TextBoxCantidad.Text.Trim();
                a.Value = DropDownListMaterial.SelectedValue.ToString();
                ListBoxMateriales.Items.Add(a);
            }
        }
    }
    protected void LinkButtonEliminar_Click(object sender, EventArgs e)
    {
        try
        {
            ListBoxMateriales.Items.RemoveAt(ListBoxMateriales.SelectedIndex);
        }
        catch
        {
        }
    }
    protected void LinkButtonInsertarCarta_Click(object sender, EventArgs e)
    {
        try
        {
            //recopilar datos
            int rut_usuario = int.Parse(LabelUsuario.Text.ToLower().Trim());
            int rut_benef = int.Parse(DropDownListBeneficiario.SelectedValue.ToLower().Trim());
            int id_lug_ent = int.Parse(DropDownListLugarEntrega.SelectedValue.ToLower().Trim());
            int id_lug_dev = int.Parse(DropDownListLugarDevolucion.SelectedValue.ToLower().Trim());

            DateTime temp = CalendarIni.SelectedDate;
            DateTime fecha_ini = new DateTime(temp.Year, temp.Month, temp.Day, int.Parse(DropDownListIniHrs.SelectedItem.ToString().Trim()), int.Parse(DropDownListIniMin.SelectedItem.ToString().Trim()), 0);

            temp = CalendarFin.SelectedDate;
            DateTime fecha_fin = new DateTime(temp.Year, temp.Month, temp.Day, int.Parse(DropDownListFinHrs.SelectedItem.ToString().Trim()), int.Parse(DropDownListFinMin.SelectedItem.ToString().Trim()), 0);

            string comentario = TextBoxComentario.Text.Trim();

            int error_fecha = fecha_fin.CompareTo(fecha_ini);//1=bien;0=igual;-1=mal
            if (error_fecha == -1)
            {//malo
                //error fecha ini mayor k fecha termino
                LabelErrorFecha.Text = "* La fecha de inicio debe ser anterior a la de término.";
                LabelErrorFecha.Visible = true;
            }
            else if (error_fecha == 0)
            {//igual
                //error fecha inicio igual a fecha termino
                LabelErrorFecha.Text = "* La fecha de inicio debe ser anterior a la de término.";
                LabelErrorFecha.Visible = true;
            }
            else if (error_fecha == 1)
            {//bien
                LabelErrorFecha.Visible = false;

                //insertar carta
                CartaBLL cartabll = new CartaBLL();
                cartabll.insert(rut_usuario, id_lug_ent, 0, id_lug_dev, rut_benef, fecha_ini, fecha_fin, comentario);
                //obtener id
                int id_carta = cartabll.max_id();
                //insertar materiales de prestamo
                foreach (ListItem item in ListBoxMateriales.Items)
                {
                    //item
                    string id_material = item.Value.ToLower().Trim();
                    string text = item.Text;
                    string[] split = text.Split('=');
                    string cantidad = split[1].ToLower().Trim();
                    SqlDataSourceListaMat.InsertParameters["MAT_P_ID"].DefaultValue = id_material;
                    SqlDataSourceListaMat.InsertParameters["CARTA_ID"].DefaultValue = id_carta.ToString().ToLower().Trim();
                    SqlDataSourceListaMat.InsertParameters["CANT_MAT_P"].DefaultValue = cantidad;
                    SqlDataSourceListaMat.Insert();
                }
                //listo
                VariablesGlobales.GetInstance().setCarta(id_carta);
                //mostrar el resultado
                Response.Redirect("VistaCartaActual.aspx");
            }
        }
        catch
        {
            //ocurrio un error al recopilar los datos
        }
    }
}
